From: David Muir Sharnoff Subject: Catalog of compilers, interpreters, and other language tools [p2of3] Summary: montly posting of free language tools that include source code Reply-to: muir@idiom.berkeley.ca.us Followup-To: comp.archives.admin Organization: University of California, Berkeley Keywords: tools, FTP, administrivia Approved: compilers@iecc.cambridge.ma.us Archive-name: free-compilers/part2 Last-modified: 1993/03/24 Version: 3.2 language: Concurrent Clean package: The Concurrent Clean System version: 0.8.1 parts: development environment, documentation, compiler(byte-code), compiler(native), interpreter(byte-code), examples how to get: ftp pub/Clean/* from ftp.cs.kun.nl author: Research Institute for Declarative Systems, University of Nijmegen description: The Concurrent Clean system is a programming environment for the functional language Concurrent Clean, developed at the University of Nijmegen, The Netherlands. The system is one of the fastest implementations of functional languages available at the moment. Its I/O libraries make it possible to do modern, yet purely functional I/O (including windows, menus, dialogs etc.) in Concurrent Clean. With the Concurrent Clean system it is possible to develop real-life applications in a purely functional language. * lazy and purely functional * strongly typed - based on Milner/Mycroft scheme * module structure * modern I/O * programmer-infulenced evaluation order by annotations contact: clean@cs.kun.nl ports: Sun-3, Sun-4, Macintosh updated: 1992/11/07 language: Dylan pakcage: Thomas version: ? first public release ? parts: translator(Scheme) how to get: ftp pub/DEC/Thomas from gatekeeper.pa.dec.com author: Matt Birkholz , Jim Miller , Ron Weiss description: Thomas, a compiler written at Digital Equipment Corporation's Cambridge Research Laboratory compiles a language compatible with the language described in the book "Dylan(TM) an object-oriented dynamic language" by Apple Computer Eastern Research and Technology, April 1992. It does not perform well. Thomas is NOT Dylan(TM). ports: MIT's CScheme, DEC's Scheme->C, Marc Feeley's Gambi, Mac, PC, Vax, MIPS, Alpha, 680x0 requires: Scheme updated: 1992/09/11 language: E package: Amiga E version: 2.1b parts: compiler, assembler, linker, utilities author: Wouter van Oortmerssen how to get: ftp amiga/dev/lang/AmigaE21b.lha from amiga.physik.unizh.ch description: An Amiga specific E compiler. E is a powerful and flexible procedural programming language and Amiga E a very fast com- piler for it, with features such as compilation speed of 20000 lines/minute on a 7 Mhz amiga, inline assembler and linker integrated into compiler, large set of integrated functions, module concept with 2.04 includes as modules, flexible type-system, quoted expressions, immediate and typed lists, low level polymorphism, exception handling and much, much more. Written in Assembly and E. discussion: comp.sys.amiga.programmer (sometimes) ports: Amiga portability: not portable at all status: actively developed updated: 1993/03/01 language: EDIF (Electronic Design Interchange Format) package: Berkeley EDIF200 version: 7.6 parts: translator-building toolkit author: Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley, CA how to get: ftp from pub/edif in ic.berkeley.edu description: ? ports: ? restriction: no-profit w/o permission updated: 1990/07 language: EDIF v 2 0 101 package: University of Manchester EDIF v 2 0 101 Syntax Checker how to get: ftp pub/edif from edif.cs.man.ac.uk description: Parser/Syntax checker for EDIF v 2 0 101 written in ANSI-C language: Eiffel package: ? version: ? parts: source checker author: Olaf Langmack and Burghardt Groeber how to get: ftp pub/heron/ep.tar.Z from ftp.fu-berlin.de description: A compiler front-end for Eiffel-3 is available. It has been generated automatically with the Karlsruhe toolbox for compiler construction according to the most recent public language definition. The parser derives an easy-to-use abstract syntax tree, supports elementary error recovery and provides a precise source code indication of errors. It performs a strict syntax check and analyses 4000 lines of source code per second on a Sun-SPARC workstation. updated: 1992/12/14 language: EuLisp package: Feel (Free and Eventually Eulisp) version: 0.75 parts: interpreter, documentation how to get: ftp pub/eulisp from ftp.bath.ac.uk author: Pete Broadbery description: + integrated object system + a module system + parallelism + interfaces to PVM library, tcp/ip sockets, futures, Linda, and CSP. ports: most unix portability: high, but can use shared memory and threads if available updated: 1992/09/14 language: FMPL of Accardi package: FMPL interpreter version: 1 parts: interpreter, documentation author: Jon Blow how to get: ftp src/local/fmpl/* from xcf.berkeley.edu description: FMPL is an experimental prototype-based object-oriented programming language developed at the Experimental Computing Facility of the University of California, Berkeley. + lambda-calculus based constructs. + event-driven (mainly I/O events) updated: 1992/06/02 language: FORTH package: TILE Forth version: 2.1 parts: interpreter author: Mikael Patel how to get: ftp tile-forth-2.1.tar.Z from a GNU archive site description: Forth interpreter in C; many Forth libraries conformance: Forth83 restriction: shareware/GPL ports: unix updated: 1991/11/13 language: FORTH package: cforth version: ? parts: interpreter author: ? how to get: comp.sources.unix archive volume 1 description: ? updated: ? language: FORTH package: F68K version: ? how to get: ftp atari/Languages/f68k.* from archive.umich.edu description: a portable Forth system for Motorola 68k computers ports: Atari ST/TT, Amiga, Sinclair QL and OS9 portability: very high for 68000 based systems contact: Joerg Plewe updated: 1992/12/14 language: Forth, Yerk package: Yerk version: 3.62 parts: ? how to get: ftp pub/Yerk/? from oddjob.uchicago.edu description: Yerk is an object oriented language based on a Forth Kernel with some major modifications. It was originally known as Neon, developed and sold as a product by Kriya Systems from 1985 to 1989. Several of us at The University of Chicago have maintained Yerk since its demise as a product. Because of the possible trademark conflict that Kriya mentions, we picked the name Yerk, which is at least not an acronym for anything, but rather stands for Yerkes Observatory, part of the Department of Astronomy and Astrophysics at U of C. author: ? updated: ? language: Forth? package: Mops version: 2.3 parts: ? how to get: ftp pub/Yerk/? from oddjob.uchicago.edu description: ??? updated: 1993/03/22 language: Fortran package: f2c version: ? parts: translator(C) author: ? how to get: ftp ft2/? from netlib@research.att.com bugs: dmg@research.att.com updated: ? 1991/02/16 ? language: Fortran package: Floppy version: ? parts: ? how to get: ffccc in comp.sources.misc archive volume 12 description: ? contact: ? updated: 1992/08/04 language: Fortran package: Flow version: ? parts: ? how to get: comp.sources.misc archive volume 31 author: Julian James Bunn descripton: The Flow program is a companion to Floppy, it allows the user to produce various reports on the structure of Fortran 77 code, such as flow diagrams and common block tables. requires: Floppy ports: VMS, Unix, CMS language: Fortran package: Adaptor (Automatic DAta Parallelism TranslatOR) version: ? parts: translator(Fortran), documentation how to get: ftp gmd/adaptor/* from ftp.gmd.de description: Adaptor is a tool that transforms data parallel programs written in Fortran with array extensions, parallel loops, and layout directives to parallel programs with explicit message passing. ADAPTOR is not a compiler but a source to source transformation that generates Fortran 77 host and node programs with message passing. The new generated source codes have to be compiled by the compiler of the parallel machine. ports: Alliant FX/2800, iPSC/860, Net of Sun-4 or RS/6000 Workstations (based on PVM), Parsytec GCel, Meiko Concerto contact: Thomas Brandes updated: 1992/10/17 language: Fortran, C package: cfortran.h version: 2.6 parts: macros, documentation, examples author: Burkhard Burow how to get: ftp cfortran/* from zebra.desy.de description: cfortran.h is an easy-to-use powerful bridge between C and FORTRAN. It provides a completely transparent, machine independent interface between C and FORTRAN routines and global data. cfortran.h provides macros which allow the C preprocessor to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface. references: reviewed in RS/Magazine November 1992 and a user's experiences with cfortran.h are to be described in the 1/93 issue of Computers in Physics. portability: high ports: VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000, Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90. contact: burow@vxdesy.cern.ch updated: 1992/04/12 langauge: Fortran package: fsplit version: ? parts: ? how to get: ? description: a tool to split up monolithic fortran programs updated: ? language: Fortran package: ? version: ? author: Steve Mccrea description: a tool to split up monolithic fortran programs requires: new awk updated: ? language: FP package: ? funcproglang ? version: ? parts: translator(C) author: ? how to get: comp.sources.unix archive volume 13 descrition: ? Backus Functional Programming ? updated: ? language: Garnet ?? package: Garnet version: 2.1 alpha how to get: ftp from /usr/garnet/? from a.gp.cs.cmu.edu description: ? contact: ? updated: ? language: Garnet package: Multi-Garnet version: 2.1 how to get: ftp /usr/garnet/alpha/src/contrib/multi-garnet from a.gp.cs.cmu.edu author: Michael Sannella description: better contstraint system for Garnet ?? updated: 1992/09/21 language: Gofer (Haskell derivitive) package: Gofer version: 2.28a parts: interpreter, translator(->C), documentation, examples author: Mark Jones how to get: ftp pub/haskell/gofer from nebula.cs.yale.edu uk: pub/Packages/Gofer from ftp.comlab.ox.ac.uk description: Gofer is based quite closely on the Haskell programming language, version 1.2. It supports lazy evaluation, higher order functions, pattern matching, polymorphism, overloading etc and runs on a wide range of machines. conformances: Gofer does not implement all of Haskell, although it is very close. status: maintained but not developed (for a while anyway) ports: many, including Sun, PC, Mac, Atari, Amiga updated: 1993/03/09 language: Haskell package: Chalmers Haskell (aka Haskell B.) version: ? parts: ? how to get: ftp pub/haskell/chalmers/hbc from animal.cs.chalmers.se requires: LML contact: ? updated: 1992/07/06 language: Haskell package: The Glasgow Haskell Compiler (GHC) version: 0.10 parts: translator(C), tests, profiler how to get: ftp pub/haskell/glasgow/* from nebula.cs.yale.edu uk: ftp pub/haskell/glasgow/* from ftp.dcs.glasgow.ac.uk se: ftp pub/haskell/glasgow/* from animal.cs.chalmers.se description: + almost all of Haskell is implemented + An extensible I/O system is provided, based on a "monad" + significant language extensions are implemented: Fully fledged unboxed data types, Ability to write arbitrary in-line C-language code, Incrementally-updatable arrays, Mutable reference types. + generational garbage collector + Good error messages + programs compiled with GHC "usually" beat Chalmers-HBC-compiled ones. + compiler is written in a modular and well-documented way. + Highly configurable runtime system. - No interactive system. - Compiler is greedy on resources. requires: GNU C 2.1+, perl, Chalmers HBC 0.998.x (source build only) conformance: Almost all of Haskell is implemented. ports: Sun4 portability: should be high bugs: contact: updated: 1992/12/14 language: Hermes package: IBM Watson prototype Hermes system version: 0.8alpha patchlevel 01 parts: bytecode compiler, bytecode translator(C), runtime author: Andy Lowry how to get: ftp pub/hermes/README from software.watson.ibm.com description: Hermes is a very-high-level integrated language and system for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an imperative, strongly typed, process-oriented language. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls or sends. The compiler, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the operating system. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimization which are not present in languages which give the programmer more direct control over the machine. reference: Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A Language for Distributed Computing. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8. ports: RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon) discussion: comp.lang.hermes updated: 1992/03/22 language: Hope package: ? parts: ? how to get: ftp ? from brolga.cc.uq.oz.au author: ? description: Functional language with polymorphic types and lazy lists. First language to use call-by-pattern. ports: Unix, Mac, PC updated: 1992/11/27 language: ici package: ici parts: interpreter, documentation, examples author: Tim Long how to get: ftp pub/ici.cpio.Z from extro.ucc.su.oz.au description: ICI has dynamic arrays, structures and typing with the flow control constructs, operators and syntax of C. There are standard functions to provided the sort of support provided by the standard I/O and the C libraries, as well as addi- tional types and functions to support common needs such as simple data bases and character based screen handling. ports: Sun4, 80x86 Xenix, NextStep, MSDOS features: + direct access to many system calls + structures, safe pointers, floating point + simple, non-indexed built in database + terminal-based windowing library contact: ? portability: high status: actively developed. updated: 1992/11/10 language: Icon package: icon version: 8.7 (8.5, 8.0 depending on platform) parts: interpreter, compiler (some platforms), library (v8.8) author: Ralph Griswold how to get: ftp icon/* from cs.arizona.edu description: Icon is a high-level, general purpose programming language that contains many features for processing nonnumeric data, particularly for textual material consisting of string of characters. - no packages, one name-space - no exceptions + object oiented features + records, sets, lists, strings, tables + unlimited line length - unix interface is primitive + co-expressions references: "The Icon Programmming Language", Ralph E. Griswold and Madge T. Griswold, Prentice Hall, seond edition, 1990. "The Implementation of the Icon Programmming Language", Ralph E. Griswold and Madge T. Griswold, Princeton University Press 1986 ports: Amiga, Atari, CMS, Macintosh, Macintosh/MPW, MSDOS, MVS, OS/2, Unix (most variants), VMS, Acorn discussion: comp.lang.icon contact: icon-project@cs.arizona.edu updated: 1992/08/21 language: IDL (Project DOE's Interface Definition Language) package: SunSoft OMG IDL CFE version: 1.0 parts: compiler front end, documentation author: SunSoft Inc. how to get: ftp pub/OMG_IDL_CFE_1.0 from omg.org description: OMG's (Object Management Group) CORBA 1.1 (Common Object Request Broker Architecture) specification provides the standard interface definition between OMG-compliant objects. IDL (Interface Definition Language) is the base mechanism for object interaction. The SunSoft OMG IDL CFE (Compiler Front End) provides a complete framework for building CORBA 1.1-compliant preprocessors for OMG IDL. To use SunSoft OMG IDL CFE, you must write a back-end; full instructions are included. No problem. A complete compiler of IDL would translate IDL into client side and server side routines for remote communication in the same manner as the currrent Sun RPCL compiler. The additional degree of freedom that the IDL compiler front end provides is that it allows integration of new back ends which can translate IDL to various programming languages. Locally at Sun we are working on a back end that will produce C and C++, and we know of companies (members of OMG) that are interested in other target languages such as Pascal or Lisp. contact: idl-cfe@sun.com updated: 1992/10/23 language: IFP (Illinois Functional Programming) package: ifp version: 0.5 parts: interpreter author: Arch D. Robison how to get: comp.sources.unix archive volume 10 description: A variant of Backus' "Functional Programming" language with a syntax reminiscent of Modula-2. The interpreter is written in portable C. references: [1] Arch D. Robison, "Illinois Functional Programming: A Tutorial," BYTE, (February 1987), pp. 115--125. [2] Arch D. Robison, "The Illinois Functional Programming Interpreter," Proceedings of 1987 SIGPLAN Conference on Interpreters and Interpretive Techniques, (June 1987), pp. 64-73 ports: UNIX, MS-DOS, CTSS (Cray) updated: ? language: INTERCAL package: ? version: ? how to get: archie? description: ? contact: ? updated: ? language: J package: J-mode what: add on to J parts: emacs macros how to get: ftp pub/j/gmacs/j-interaction-mode.el from think.com updated: 1991/03/04 language: J package: J from ISI version: 6 parts: interpreter, tutorial author: Kenneth E. Iverson and Roger Hui how to get: ftp languages/apl/j/* from watserv1.waterloo.edu description: J was designed and developed by Ken Iverson and Roger Hui. It is similar to the language APL, departing from APL in using using the ASCII alphabet exclusively, but employing a spelling scheme that retains the advantages of the special alphabet required by APL. It has added features and control structures that extend its power beyond standard APL. Although it can be used as a conventional procedural programming language, it can also be used as a pure functional programming language. ports: Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn IBM-PC, Atari, 3b1, Amiga updated: 1992/10/31 language: Janus package: qdjanus version: 1.3 parts: translator(prolog) author: Saumya Debray how to get: ftp janus/qdjanus/* from cs.arizona.edu conformance: mostly compliant with "Programming in Janus" by Saraswat, Kahn, and Levy. description: janus is a janus-to-prolog compiler meant to be used with Sicstus Prolog updated: 1992/05/18 language: Janus package: jc version: 1.50 alpha parts: translator(C) author: David Gudeman how to get: ftp janus/jc/* from cs.arizona.edu description: jc is a janus-to-C compiler (considerably faster than qdjanus). jc is a _sequential_ implementation of a _concurrent_ language. status: jc is an experimental system, undergoing rapid development. It is in alpha release currently. bugs: jc-bugs@cs.arizona.edu discussion: janusinterest-request@parc.xerox.com ports: sun-4, sun-3, Sequent Symmetry updated: 1992/06/09 language: Kevo package: kevo version: 0.9b2 parts: ?, demo programs, user's guid, papers author: Antero Taivalsaari how to get: ftp /ursa/kevo/* from ursamajor.uvic.ca description: Experimental prototype-based object-oriented system. Although the Kevo system has been built to experiment with ideas which are somewhat irrelevant from the viewpoint of Forth, the system does bear some resemblance to Forth; in particular, the system executes indirect threaded code, and a great deal of the primitives are similar to those of Forth's. ports: Macintosh ('020 or better) contact: kevo-interest@ursamajor.uvic.ca updated: 1992/09/21 language: PCN package: PCN version: 2.0 parts: compiler?, runtime, linker, libraries, tools, debugger, profiler, tracer author: Ian Foster , Steve Tuecke , and others how to get: ftp pub/pcn/pcn_v2.0.tar.Z from info.mcs.anl.gov description: PCN is a parallel programming system designed to improve the productivity of scientists and engineers using parallel computers. It provides a simple language for specifying concurrent algorithms, interfaces to Fortran and C, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers, and integrated debugging and performance analysis tools. PCN was developed at Argonne National Laboratory and the California Institute of Technology. It has been used to develop a wide variety of applications, in areas such as climate modeling, fluid dynamics, computational biology, chemistry, and circuit simulation. ports: (workstation nets): Sun4, NeXT, RS/6000, SGI (multicomputers): iPSC/860, Touchstone DELTA (shared memory multiprocessors): Symmetry/Dynix contact: updated: 1993/02/12 language: RLaB language (math manipulation - MATLAB-like) package: RLaB version: 0.50 - first public release, still alpha parts: interpreter, libraries, documentation author: Ian Searle how to get: ftp pub/alpha/RLaB from evans.ee.adfa.oz.au description: RLaB is a "MATLAB-like" matrix-oriented programming language/toolbox. RLaB focuses on creating a good experimental environment (or laboratory) in which to do matrix math Currently RLaB has numeric scalars and matrices (real and complex), and string scalars, and matrices. RLaB also contains a list variable type, which is a heterogeneous associative array. restriction: GNU General Public License requires: GNUPLOT, lib[IF]77.a (from f2c) ports: many unix, OS/2, Amiga bugs: Ian Searle updated: 1993/02/16 language: FUDGIT language (math manipulation) package: FUDGIT version: 2.27 parts: interpreter author: Thomas Koenig ?? how to get: ftp /pub/linux/sources/usr.bin/fudgit-* from tsx-11.mit.edu ?? description: FUDGIT is a double-precision multi-purpose fitting program. It can manipulate complete columns of numbers in the form of vector arithmetic. FUDGIT is also an expression language interpreter understanding most of C grammar except pointers. Morever, FUDGIT is a front end for any plotting program supporting commands from stdin. It is a nice mathematical complement to GNUPLOT, for example. requires: GNUPLOT ports: AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix updated: 1993/02/22 language: Unix BC (arbitrary-precision arithmetic language) package: GNU BC version: 1.02 parts: interpreter? author: ? how to get: ftp bc-1.02.tar.Z from a GNU archive site description: Bc is an arbitrary precision numeric processing language. Its syntax in similar to C but differs in many substantial areas. This version was written to be a POSIX compliant bc processor with several extensions to the draft standard. This version does not use the historical method of having bc be a compiler for the dc calculator. This version has a single executable that both compiles the language and runs the resulting "byte code". The "byte code" is NOT the dc language. bugs: ? updated: ? language: Calc? (symbolic math calculator) package: Calc version: 2.02 parts: interpreter, emacs mode author: ? how to get: ftp calc-2.02.tar.z from a GNU archive site description: Calc is an extensible, advanced desk calculator and mathematical tool written in Emacs Lisp that runs as part of GNU Emacs. It is accompanied by the "Calc Manual", which serves as both a tutorial and a reference. If you wish, you can use Calc as only a simple four-function calculator, but it also provides additional features including choice of algebraic or RPN (stack-based) entry, logarithms, trigonometric and financial functions, arbitrary precision, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration. bugs: ? updated: ? language: lex package: flex version: 2.3.7 parts: scanner generator how to get: ftp flex-2.3.7.tar.Z from a GNU archive site or ftp.ee.lbl.gov author: Vern Paxson updated: 1992/10/20 language: LIFE (Logic, Inheritance, Functions, and Equations) package: Wild_LIFE version: first-release parts: interpreter, manual, tests, libraries, examples author: Paradise Project, DEC Paris Research Laboratory. how to get: ftp pub/plan/Life.tar.Z from gatekeeper.dec.com. description: LIFE is an experimental programming language with a powerful facility for structured type inheritance. It reconciles styles from functional programming, logic programming, and object-oriented programming. LIFE implements a constraint logic programming language with equality (unification) and entailment (matching) constraints over order-sorted feature terms. The Wild_LIFE interpreter has a comfortable user interface with incremental query extension ability. It contains an extensive set of built-in operations as well as an X Windows interface. conformance: semantic superset of LOGIN and LeFun. Syntax is similar to prolog. discussion: life-request@prl.dec.com bugs: life-bugs@prl.dec.com contact: Peter Van Roy ports: MIPS-Ultrix portability: good in theory updated: 1992/12/14 language: lisp package: RefLisp version: 2.67 parts: interpreter, documentation, examples, profiler author: Bill Birch how to get: ftp implementations/reflisp/* from the directory /afs/cs.cmu.edu/user/mkant/Public/Lisp on ftp.cs.cmu.edu description: The interpreter is a shallow-binding (i.e., everything has dynamic scope), reference counting design making it suitable for experimenting with real-time and graphic user interface programming. Common Lisp compatibility macros are provided, and most of the examples in "Lisp" by Winston & Horn have been run on RefLisp. RefLisp makes no distinction between symbol-values and function-values, so a symbol can be either but not both. There are Lisp modules for lexical scope and for running indefinite extent Scheme programs. status: "Last Update for a While," author is emigrating to Australia ports: MSDOS (CGA/EGA/VGA), Unix (AIX) updated: 1993/02/09 language: lisp package: xlisp version: 2.1 parts: interpreter author: David Micheal Betz how to get: ftp pub/xlisp* from wasp.eng.ufl.edu usmail: contact Tom Almy windows: ftp util/wxlslib.zip from ftp.cica.indiana.edu version2.0: ftp pub/xlisp/* from cs.orst.edu description: XLISP is an experimental programming language combining some of the features of Common Lisp with an object-oriented extension capability. It was implemented to allow experimentation with object-oriented programming on small computers. conformance: subset of Common Lisp with additions of Class and Object portability: very high: just needs a C compiler ports: unix, amiga, atari, mac, MSDOS restriction: ? no commercial use ? updated: 1992/05/26 (unix), 1987/12/16 (other platforms) language: lisp package: "LISP, Objects, and Symbolic Programming" version: ? parts: book with compiler included author: Robert R. Kessler and Amy R. Petajan publisher: Scott, Foresman and Company, Glenview, IL how to get: bookstore... updated: 1988 language: lisp package: franz lisp version: ? how to get: [does anyone know where you get franz lisp??? --muir] author: ? discussion: franz-friends-request@berkeley.edu updated: ? language: lisp (WOOL - Window Object Oriented Language) package: GWM (Generic Window Manager) version: ? parts: interpreter, examples author: ? how to get: ftp contrib/gwm/* from export.lcs.mit.edu france: ftp pub/gwm/* from avahi.inria.fr description: Gwm is an extensible window manager for X11. It is based on a WOOL kernel, and interpreted dialect of lisp with specific winow management primitives. discussion: gwm-talk@??? contact: ? updated: ? language: lisp (elisp - Emacs Lisp) package: GNU Emacs version: 18.59 parts: editor, interpreter, documentation author: Richard Stallman and others description: An editor that is almost an operating system. Quite programmable. [someone want to say something better? --muir] discussion: alt.religion.emacs, gnu.emacs.sources announcements: gnu.emacs.announce bugs: gnu.emacs.bug help: gnu.emacs.help ports: Unix, VMS, ? updated: ? language: Logo package: logo version: 4 parts: interpreter author: ? how to get: comp.sources.unix archive volume 10 description: ? updated: ? language: Logo package: Berkeley Logo version: 2.9 - alpha parts: interpreter author: Brian Harvey how to ge: ftp pub/*logo* from anarres.cs.berkeley.edu description: + Logo programs are compatible among Unix, PC, and Mac. + "richer" than MswLogo - pretty slow. - doesn't do anything fancy about graphics. (One turtle.) ports: unix, pc, mac updated: 1993/03/01 language: Logo package: MswLogo version: 3.2 parts: interpreter author: George Mills how to get: ftp pd1:/MSW*.ZIP from OAK.Oakland.Edu description: A windows front-end for Berkeley Logo status: activly developed bugs: George Mills ports: MS Windows 3.x updated: 1992/10/17 language: Lolli (logic programming) package: Lolli parts: ? how to get: ftp pub/Lolli/Lolli-07.tar.Z. from ftp.cis.upenn.edu author: ? Josh Hodas ? description: Lolli is an interpreter for logic programming based on linear logic principles. Lolli can be viewed as a refinement of the the Hereditary Harrop formulas of Lambda-Prolog. All the operators (though not the higher order unification) of Lambda-Prolog are supported, but with the addition of linear variations. Thus a Lolli program distinguishes between clauses which can be used as many, or as few, times as desired, and those that must be used exactly once. requires: ML updated: 1992/11/08 language: LOOPN package: LOOPN version: ? parts: compiler?, simulator how to get: ftp departments/computer_sci*/loopn.tar.Z from ftp.utas.edu.au description: I wish to announce the availability of a compiler, simulator and associated source control for an object-oriented petri net language called LOOPN. In LOOPN, a petri net is an extension of coloured timed petri nets. The extension means firstly that token types are classes. In other words, they consist of both data fields and functions, they can be declared by inheriting from other token types, and they can be used polymorphically. The object-oriented extensions also mean that module or subnet types are classes. LOOPN has been developed over a period of about 5 years at the University of Tasmania, where it has been used in teaching computer simulation and the modelling of network protocols. A petri net is a directed, bipartite graph; nodes are either places (represented by circles) or transitions (represented by rectangles). A net is marked by placing tokens on places. When all the places pointing to a transition (the input places) have a token, the net may be fired by removing a token from each input place and adding a token to each place pointed to by the transition (the output places). Petri nets are used to model concurrent systems, particularly in the network protocol area. contact: Charles Lakos updated: 1992/12/20 language: MeldC (MELD, C) package: MeldC version: 2.0 parts: microkernel, compiler, debugger, manual, examples author: MELD Project, Programming Systems Laboratory at Columbia University how to get: obtain license from restriction: must sign license, cannot use for commercial purposes description: MeldC 2.0: A Reflective Object-Oriented Coordination Programming Language MELDC is a C-based, concurrent, object-oriented language built on a reflective architecture. The core of the architecture is a micro-kernel (the MELDC kernel), which encapsulates a minimum set of entities that cannot be modeled as objects. All components outside of the kernel are implemented as objects in MELDC itself and are modularized in the MELDC libraries. MELDC is reflective in three dimensions: structural, computational and architectural. The structural reflection indicates that classes and meta-classes are objects, which are written in MELDC. The computational reflection means that object behaviors can be computed and extended at runtime. The architectural reflection indicates that new features/properties (e.g., persistency and remoteness) can be constructed in MELDC. ports: Sun4/SunOS4.1 Mips/Ultrix4.2 contact: updated: 1992/12/15 language: ML package: LML version: ? parts: compiler(?), interactive environment how to get: ftp ? from animal.cs.chalmers.se description: lazy, completely functional variant of ML. ports: ? contact: ? updated: 1992/07/06 langauge: m4 package: GNU m4 version: 1.0 parts: interperter, ? how to get: ftp m4-1.0.tar.Z from a GNU archive site author: ? description: A macro preprocessor language, somewhat flexible. conformance: ? ports: ? updated: 1991/10/25 language: Modula-2, Pascal package: m2 version: ? 7/2/92 ? parts: ? compiler ? history: The compiler was designed and built by Michael L. Powell, and originally released in 1984. Joel McCormack sped the compiler up, fixed lots of bugs, and swiped/wrote a User's Manual. Len Lattanzi ported the compiler to the MIPS. description: A modula-2 compiler for VAX and MIPS. A Pascal compiler for VAX is also included. The Pascal compiler accepts a language that is almost identical to Berkeley Pascal. conformance: extensions: + foreign function and data interface + dynamic array variables + subarray parameters + multi-dimensional open array parameters + inline proceedures + longfloat type + type-checked interface to C library I/O routines how to get: ftp pub/DEC/Modula-2/m2.tar.Z from gatekeeper.dec.com restriction: must pass changes back to Digital ports: vax (ultrix, bsd), mips (ultrix) contact: modula-2@decwrl.pa.dec.com updated: 1992/07/06 language: Modula-2 package: mtc parts: translator(C) how to get: ftp soft/unixtools/compilerbau/mtc.tar.Z from rusmv1.rus.uni-stuttgart.de author: ? description: ? ports: ? updated: 1991/10/25 language: Modula-2, Modula-3 package: M2toM3 ? version: ? parts: translator(Modula-2 -> Modula-3), ? author: ? how to get: ftp pub/DEC/Modula-3/contrib/M2toM3 from gatekeeper.dec.com description: ? requires: ? updated: ? language: Modula-2 package: PRAM emulator and parallel modula-2 compiler ?? version: ? parts: compiler, emulator how to get: ftp pub/pram/* from cs.joensuu.fi description: A software emulator for parallel random access machine (PRAM) and a parallel modula-2 compiler for the emulator. A PRAM consists of P processors, an unbounded shared memory, and a common clock. Each processor is a random access machine (RAM) consisting of R registers, a program counter, and a read-only signature register. Each RAM has an identical program, but the RAMs can branch to different parts of the program. The RAMs execute the program synchronously one instruction in one clock cycle. pm2 programming language is Modula-2/Pascal mixture having extensions for parallel execution in a PRAM. Parallelism is expressed by pardo-loop- structure. Additional features include privat/shared variables, two synchronization strategies, load balancing and parallel dynamic memory allocation. contact: Simo Juvaste updated: 1993/02/17 language: Modula-3 package: SRC Modula-3 version: 2.11 parts: translator(C), runtime, library, documentation how to get: ftp pub/DEC/Modula-3/m3-*.tar.Z from gatekeeper.dec.com description: The goal of Modula-3 is to be as simple and safe as it can be while meeting the needs of modern systems programmers. Instead of exploring new features, we studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. We found that most of the successful features were aimed at one of two main goals: greater robustness, and a simpler, more systematic type system. Modula-3 retains one of Modula-2's most successful features, the provision for explicit interfaces between modules. It adds objects and classes, exception handling, garbage collection, lightweight processes (or threads), and the isolation of unsafe features. conformance: implements the language defined in SPwM3. ports: i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix 68020/HP-UX RS6000/AIX IBMRT/4.3 68000/NextStep i860/SVR4 SPARC/SunOS 68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix contact: Bill Kalsow discussion: comp.lang.modula3 updated: 1992/02/09 language: Modula-3 package: m3pc parts: ? author: ? how to get: ftp pub/DEC/Modula-3/contrib/m3pc* from gatekeeper.dec.com description: an implementation of Modula-3 for PCs. [Is this SRC Modula-3 ported? --muir] updated: ? language: Motorola DSP56001 assembly package: a56 version: 1.1 parts: assembler author: Quinn C. Jensen how to get: alt.sources archive updated: 1992/08/10 language: natural languages package: proof parts: parser, documentation author: Craig R. Latta how to get: ftp src/local/proof/* from scam.berkeley.edu description: a left-associative natural language grammar scanner bugs: proof@xcf.berkeley.edu discussion: proof-request@xcf.berkeley.edu ("Subject: add me") ports: Decstation3100 Sun-4 updated: 1991/09/23 language: NewsClip ? package: NewsClip version: 1.01 parts: translator(NewsClip->C), examples, documentation author: Looking Glass Software Limited but distributed by ClariNet Communications Corp. description: NewsClip is a very high level language designed for writing netnews filters. It translates into C. It includes support for various newsreaders. restriction: Cannot sell the output of the filters. Donation is hinted at. status: supported for ClariNet customers only contact: newsclip@clarinet.com updated: 1992/10/25 language: Oaklisp package: oaklisp version: 1.2 parts: interface, bytecode compiler, runtime system, documentation author: Barak Pearlmutter, Kevin Lang how to get: ftp /afs/cs.cmu.edu/user/bap/oak/ftpable/* from f.gp.cs.cmu.edu description: Oaklisp is a Scheme where everything is an object. It provides multiple inheritence, a strong error system, setters and locators for operations, and a facility for dynamic binding. status: actively developed? contact: Pearlmutter-Barak@CS.Yale.Edu ? updated: 1992/05 ? language: Oberon package: Oberon from ETH Zurich version: 2.2 (msdos: 1.0) parts: compiler, programming environment, libraries, documenation how to get: ftp Oberon/* from neptune.inf.ethz.ch MSDOS: ftp Oberon/DOS386/* from neptune.inf.ethz.ch macintosh: ??? same package or different ??? ftp /mac/development/languages/macoberon2.40.sit.hqx from archive.umich.edu author: Josef Templ conformance: superset (except Mac) ports: DECstation/MIPS/Ultrix/X11 Macintosh/68020/MacOS/QuickDraw IBM/RS6000/AIX/X11 Sun-4/SunOS4/X11 Sun-4/SunOS4/pixrect MSDOS contact: Leuthold@inf.ethz.ch updated: 1992/07/20 language: Oberon2 package: Oberon-2 LEX/YACC definition version: 1.4 parts: parser(yacc), scanner(lex) how to get: mail bevan@cs.man.ac.uk with Subject "b-server-request~ and body "send oberon/oberon_2_p_v1.4.shar" author: Stephen J Bevan parts: scanner(lex) parser(yacc) status: un-officially supported updated: 1992/07/06 language: OPS5 package: PD OPS5 version: ? parts: interpreter how to get: ftp /afs/cs.cmu.edu/user/mkant/Public/Lisp/ops5* from ftp.cs.cmu.edu author: Written by Charles L. Forgy and ported to Common Lisp by George Wood and Jim Kowalski. description: Public domain implementation of an OPS5 interpreter. OPS5 is a programming language for production systems. ?????? contact: ? Mark Kantrowitz ? requires: Common Lisp updated: 1992/10/17 language: Parallaxis package: parallaxis version: 2.0 parts: ?, simulator, x-based profiler author: ? how to get: ftp pub/parallaxis from ftp.informatik.uni-stuttgart.de description: Parallaxis is a procedural programming language based on Modula-2, but extended for data parallel (SIMD) programming. The main approach for machine independent parallel programming is to include a description of the virtual parallel machine with each parallel algorithm. ports: MP-1, CM-2, Sun-3, Sun-4, DECstation, HP 700, RS/6000 contact: ? Thomas Braunl ? updated: 1992/10/23 language: Parlog package: SPM System (Sequential Parlog Machine) version: ? parts: ?, documenation author: ? how to get: ? ftp lang/Parlog.tar.Z from nuri.inria.fr description: a logic programming language ? references: Steve Gregory, "Parallel Logic Programming in PARLOG", Addison-Wesely, UK, 1987 ports: Sun-3 ? restriction: ? no source code ? updated: ?? language: Pascal package: p2c version: 1.20 parts: translator(Pascal->C) author: Dave Gillespie how to get: ftp ? from csvax.cs.caltech.edu conformance: supports ANSI/ISO standard Pascal as well as substantial subsets of HP, Turbo, VAX, and many other Pascal dialects. ports: ? updated: 1990/04/13 language: Pascal package: ? iso_pascal ? version: ? parts: scanner(lex), parser(yacc) author: ? how to get: comp.sources.unix archive volume 13 description: ? updated: ? language: Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog package: Tim Budd's C++ implementation of Kamin's interpreters version: ? parts: interpretors, documentation author: Tim Budd how to get: ? ftp pub/budd/kamin/*.shar from cs.orst.edu ? description: a set of interpretors written as subclasses based on "Programming Languages, An Interpreter-Based Approach", by Samuel Kamin. requires: C++ status: ? contact: Tim Budd updated: 1991/09/12 language: Pascal package: ? frontend ? version: Alpha parts: frontend (lexer, parser, semantic analysis) author: Willem Jan Withagen how to get: ftp pub/src/pascal/front* from ftp.eb.ele.tue.nl description: a new version of the PASCAL frontend using the Cocktail compiler tools. updated: 1993/02/24 language: Pascal package: ptc version: ? parts: translator(Pacal->C) how to get: ftp languages/ptc from uxc.sco.uiuc.edu ? (use archie?) description: ? contact: ? updated: ? language: Turbo Pascal, Turbo C package: tptc version: ? parts: translator(Turbo Pascal->Turbo C) how to get: ftp mirrors/msdos/turbopas/tptc17*.zip from wuarchive.wustl.edu description: (It does come with full source and a student recently used it as a start for a language that included stacks and queues as a built-in data type. contact: ? updated: ? language: Perl (Practical Extraction and Report Language) package: perl version: 4.0 patchlevel 36 parts: interpreter, debugger, libraries, tests, documentation how to get: ftp pub/perl.4.0/* from jpl-devvax.jpl.nasa.gov OS/2 port: ftp pub/os2/all/unix/prog*/perl4019.zip from hobbes.nmsu.edu Mac port: ftp software/mac/src/mpw_c/Mac_Perl_405_* from nic.switch.ch Amiga port: ftp perl4.035.V010.* from wuarchive.wustl.edu VMS port: ftp software/vms/perl/* from ftp.pitt.edu Atari port: ftp amiga/Languages/perl* from atari.archive.umich.edu DOS port: ftp pub/msdos/perl/* from ftp.ee.umanitoba.ca author: Larry Wall description: perl is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. features: + very-high semantic density becuase of powerful operators like regular expression substitution + exceptions, provide/require + associative array can be bound to dbm files + no arbitrary limits + direct access to almost all system calls + can access binary data + many powerful common-task idioms - three variable types: scalar, array, and hash table - unappealing syntax references: "Programming Perl" by Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 0-93715-64-1 discussion: comp.lang.perl bugs: comp.lang.perl; Larry Wall ports: almost all unix, MSDOS, Mac, Amiga, Atari, OS/2, VMS portability: very high for unix, not so high for others updated: 1993/02/07 language: perl, awk, sed, find package: a2p, s2p, find2perl parts: translators(perl) author: Larry Wall how to get: comes with perl description: translators to turn awk, sed, and find into perl. language: perl, yacc package: perl-byacc version: 1.8.2 parts: parser-generator(perl) how to get: ftp local/perl-byacc.tar.Z from ftp.sterling.com author: Rick Ohnemus description: A modified version of byacc that generates perl code. Has '-p' switch so multiple parsers can be used in one program (C or perl). portability: Should work on most (?) UNIX systems. Also works with SAS/C 6.x on AMIGAs. updated: 1993/01/24 language: Postscript package: Ghostscript version: 2.5.2 parts: interpreter, ? author: L. Peter Deutsch how to get: ftp pub/GNU/ghostscript* from a GNU archive site description: ? updated: 1992/10/07 language: Postscript, Common Lisp package: PLisp version: ? parts: translator(Postscript), programming environment(Postscript) description: ? author: John Peterson updated: ? language: Prolog package: SB-Prolog version: 3.1 ? author: interpreter how to get: ftp pub/sbprolog from sbcs.sunysb.edu description: ? contact: ? warren@sbcs.sunysb.edu ? restriction: GNU General Public License updated: ? langauge: Prolog package: Modular SB-Prolog version: ? parts: interpreter how to get: ftp pub/dts/mod-prolog.tar.Z from ftp.dcs.ed.ac.uk description: SB-Prolog version 3.1 plus modules ports: Sparc contact: Brian Paxton restriction: GNU General Public License updated: ? language: ALF [prolog variant] package: alf (Algebraic Logic Functional programming language) version: ? parts: runtime, compiler(Warren Abstract Machine) author: Rudolf Opalla how to get: ftp pub/programming/languages/LogicFunctional from ftp.germany.eu.net description: ALF is a language which combines functional and logic programming techniques. The foundation of ALF is Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming. Since ALF is an integration of both programming paradigms, any functional expression can be used in a goal literal and arbitrary predicates can occur in conditions of equations. updated: 1992/10/08 language: CLP (Constraint Logic Programming language) [Prolog variant] package: CLP(R) version: 1.2 parts: runtime, compiler(byte-code), contstraint solver author: IBM how to get: mail to Joxan Jaffar description: CLP(R) is a constraint logic programming language with real-arithmetic constraints. The implementation contains a built-in constraint solver which deals with linear arithmetic and contains a mechanism for delaying nonlinear constraints until they become linear. Since CLP(R) subsumes PROLOG, the system is also usable as a general-purpose logic programming language. There are also powerful facilities for meta programming with constraints. Significant CLP(R) applications have been published in diverse areas such as molecular biology, finance, physical modelling, etc. We are distributing CLP(R) in order to help widen the use of constraint programming, and to solicit feedback on the system restriction: free for academic and research purposes only contact: Roland Yap , Joxan Jaffar ports: unix, msdos, OS/2 updated: 1992/10/14 language: Prolog (variant) package: Aditi version: Beta Release parts: interpreter, database author: Machine Intelligence Project, Univ. of Melbourne, Australia how to get: send email to aditi@cs.mu.oz.au description: The Aditi Deductive Database System is a multi-user deductive database system. It supports base relations defined by facts (relations in the sense of relational databases) and derived relations defined by rules that specify how to compute new information from old information. Both base relations and the rules defining derived relations are stored on disk and are accessed as required during query evaluation. The rules defining derived relations are expressed in a Prolog-like language, which is also used for expressing queries. Aditi supports the full structured data capability of Prolog. Base relations can store arbitrarily nested terms, for example arbitrary length lists, and rules can directly manipulate such terms. Base relations can be indexed with B-trees or multi-level signature files. Users can access the system through a Motif-based query and database administration tool, or through a command line interface. There is also in interface that allows NU-Prolog programs to access Aditi in a transparent manner. Proper transaction processing is not supported in this release. ports: Sparc/SunOS4.1.2 Mips/Irix4.0 contact: updated: 1992/12/17 language: Lambda-Prolog package: Prolog/Mali (PM) version: ? 6/23/92 ? parts: translator(C), linker, libraries, runtime, documentation how to get: ftp pm/* from ftp.irisa.fr author: Pascal Brisset description: Lambda-Prolog, a logic programming language defined by Miller, is an extension of Prolog where terms are simply typed $\lambda$terms and clauses are higher order hereditary Harrop formulas. The main novelties are universal quantification on goals and implication. references: + Miller D.A. and Nadathur G. "Higher-order logic programming", 3rd International Conference on Logic Programming, pp 448-462, London 1986. + Nadathur G. "A Higher-Order Logic as a Basis for Logic Programming", Thesis, University of Pennsylvania, 1987. requires: MALI-V06 abstract memory. MALI is available by anonymous ftp from ftp.irisa.fr ports: unix discussion: prolog-mali-request@irisa.fr contact: pm@irisa.fr updated: 1992/07/06 language: Prolog (variant) package: CORAL version: ? parts: interpreter, interface(C++), documentation author: ? how to get: ftp ? from ftp.cs.wisc.edu description: The CORAL deductive database/logic programming system was developed at the University of Wisconsin-Madison. The CORAL declarative language is based on Horn-clause rules with extensions like SQL's group-by and aggregation operators, and uses a Prolog-like syntax. * Many evaluation techniques are supported, including bottom-up fixpoint evaluation and top-down backtracking. * A module mechanism is available. Modules are separately compiled; different evaluation methods can be used in different modules within a single program. * Disk-resident data is supported via an interface to the Exodus storage manager. * There is an on-line help facility requires: AT&T C++ 2.0 (G++ soon) ports: Decstation, Sun4 updated: 1993/01/29 language: Prolog package: BinProlog version: 1.39 parts: compiler? how to get: ftp BinProlog/* from clement.info.umoncton.ca description: ? ports: IBM-PC/386, Sun-4, Sun-3 contact: Paul Tarau updated: ? language: prolog package: SWI-Prolog version: 1.6.12 author: Jan Wielemaker how to get: ftp pub/SWI-Prolog from swi.psy.uva.nl OS/2: ftp pub/toolw/SWI/* from mpii02999.ag2.mpi-sb.mpg.de conformance: superset features: "very nice Ed. style prolog, best free one I've seen" ports: Sun-4, Sun-3 (complete); Linux, DEC MIPS (done but incomplete, support needed); RS6000, PS2/AIX, Atari ST, Gould PN, NeXT, VAX, HP-UX (known problems, support needed); MSDOS (status unknown), OS/2 restriction: GNU General Public License status: activly developed discussion: prolog-request@swi.psy.uva.nl contact: (OS/2) Andreas Toenne updated: 1993/03/05